(in-package :skymech)
; Хранить конфигурации планет будем в виде списков свойств:
; (:vis (:width 5 :color (255 0 0))
;  :pos (1 2)
;  :vel (2 3)
;  :mass 100)
; Сам космос будет представлен просто списком параметров планет

(defun parse-sky-obj (s-exp) ; s-exp в данном случае - параметры планет
    (make-instance 'body
                   :vis  (getf s-exp :vis)
                   :pos  (apply #'complex (getf s-exp :pos))
                   :vel  (apply #'complex (getf s-exp :vel))
                   :mass (getf s-exp :mass)))

(defun parse-space (s-exp) ; s-exp в данном случае - список планет (космос)
    (mapcar #'parse-sky-obj s-exp))

(defun parse-space-from-string (conf-string)    ; Пока не буду делать сложную проверку конфигураций.
    (parse-space (read-from-string conf-string))) ; Будем считать, что они корректны
